package com.atguigu.gulimall.product.service;

import com.atguigu.gulimall.product.vo.AttrResVo;
import com.atguigu.gulimall.product.vo.AttrVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.atguigu.common.utils.PageUtils;
import com.atguigu.gulimall.product.entity.AttrEntity;

import java.util.List;
import java.util.Map;

/**
 * 商品属性
 *
 * @author GCQ
 * @email python0526@163.com
 * @date 2020-12-18 14:26:55
 */
public interface AttrService extends IService<AttrEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * @需求描述: 系统管理员-商品属性组 模块 查询规格参数
     * @创建人: 郭承乾
     * @创建时间: 2020/12/21 12:15
     * @修改需求:
     * @修改人:
     * @修改时间:
     * @需求思路:
     */
    PageUtils queryBaseAttrPage(Map<String, Object> params, Long catelogId, String attrType);

    /**
     * @需求描述: 系统管理员-商品属性组 模块 保存属性[规格参数、销售属性]
     * @创建人: 郭承乾
     * @创建时间: 2020/12/21 15:23
     * @修改需求:
     * @修改人:
     * @修改时间:
     * @需求思路:
     */
    void saveAttr(AttrVo attr);

    /**
     * @需求描述: 系统管理员-商品属性组 模块 查询属性详情
     * @创建人: 郭承乾
     * @创建时间: 2020/12/21 15:38
     * @修改需求:
     * @修改人:
     * @修改时间:
     * @需求思路:
     */
    AttrResVo getAttrInfo(Long attrId);

    /**
     * @需求描述: 系统管理员-商品属性组 模块 修改属性
     * @创建人: 郭承乾
     * @创建时间: 2020/12/21 16:12
     * @修改需求:
     * @修改人:
     * @修改时间:
     * @需求思路:
     */
    void updateAttr(AttrVo attr);

    /**
    * @需求描述: 系统管理员-商品属性组 获取分组下关联的属性
    * @创建人: 郭承乾
    * @创建时间: 2020/12/21 22:13
    * @修改需求:
    * @修改人:
    * @修改时间:
    * @需求思路:
    */
    List<AttrEntity> getRelationAttr(Long attrgroupId);


    PageUtils notAttrRelation(Map<String, Object> params, Long attrgroupId);

    /**
    * @需求描述: 系统管理员-商品属性组 模块 指定所有属性集合中,挑选出检索属性 search_type = 1
    * @创建人: 郭承乾
    * @创建时间: 2020/12/28 8:02
    * @修改需求:
    * @修改人:
    * @修改时间:
    * @需求思路:
    */
    List<Long> selectSearchAttrIds(List<Long> atttrIds);
}

